bitkeeper revision 1.1159.187.69 (41c70d63jlyWGYhaHG_UYY__odoBCw)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 20 Dec 2004 17:35:31 +0000 (17:35 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 20 Dec 2004 17:35:31 +0000 (17:35 +0000)
Better MAC-address initialisation in netback.

linux-2.6.9-xen-sparse/drivers/xen/netback/interface.c

index baa50ace22c19ea478d554ca18e0c8884b5346ff..8de03f644b351fff8b59eabd29774d8e043ea35c 100644 (file)
@@ -124,13 +124,17 @@ void netif_create(netif_be_create_t *create)
 
     dev->hard_start_xmit = netif_be_start_xmit;
     dev->get_stats       = netif_be_get_stats;
-    memcpy(dev->dev_addr, create->mac, ETH_ALEN);
 
     /* Disable queuing. */
     dev->tx_queue_len = 0;
 
-    /* Force a different MAC from remote end. */
-    dev->dev_addr[2] ^= 1;
+    /*
+     * Initialise a dummy MAC address. We choose the numerically largest
+     * non-broadcast address to prevent the address getting stolen by an 
+     * Ethernet bridge for STP purposes. (FE:FF:FF:FF:FF:FF)
+     */
+    memset(dev->dev_addr, 0xFF, ETH_ALEN);
+    dev->dev_addr[0] &= ~0x01;
 
     if ( (err = register_netdev(dev)) != 0 )
     {